package com.guit.hrms.service;

import com.guit.hrms.po.Article;
import java.util.List;

/**
 * 文章服务接口
 */
public interface ArticleService {
    /** 获取所有文章 */
    List<Article> getAllArticles();

    /**管理员获取所有文章 */
    List<Article> getAllArticlesWithToken();
    
    /** 根据ID获取文章 */
    Article getArticleById(Long id);
    
    /** 根据类型获取文章 */
    List<Article> getArticlesByType(Integer type);
    
    /** 创建文章 */
    Article createArticle(Article article);
    
    /** 更新文章 */
    Article updateArticle(Article article);
    
    /** 删除文章 */
    boolean deleteArticle(Long id);

    /**
     * 恢复文章
     */
    int restoreArticle(Long id);

    /** 增加浏览次数 */
    void incrementViewCount(Long id);
    
    /**
     * 硬删除文章及其附件
     * @param id 文章ID
     * @return 是否删除成功
     * @throws RuntimeException 如果删除过程中发生错误
     */
    boolean hardDeleteArticle(Long id);
} 